Method and system for inserting a data object into a computer-generated document using a text instruction

ABSTRACT

For inserting a data object as for example a mathematical formula or special characters like Greek characters into a text document, instruction symbols representing the data object are inputted in the form of text characters into the text document. A text portion containing instruction symbols is selected, and the instruction symbols contained in the selected text portion are converted into a data object represented by the instruction symbols. The invention allows rapid input of data objects into the text document, in particular simple mathematical formulae or single special characters without entering a formula editor or the like.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to generating documents using acomputer application, and in particular to inserting a data object likea mathematical formula or special characters like Greek characters intoa computer-generated document as for example a text document.

2. Description of Related Art

Computer word processing applications typically are used to generate adocument, referred to as a computer-generated document, that may containtext data, tables, diagrams, etc. and often mathematical formulae orspecial characters like Greek characters. Mathematical formulae andspecial characters are particularly important for documents likescientific articles and the like. Similarly, HTML Web page generatorsgenerate a document that is effectively a text-based document.

For creating a mathematical formula within a text document 100 (FIG. 1),so called formula editors were used. Typically, the formula editor wasopened from within the computer word processing application by clickingon a menu bar icon, or alternatively using a menu.

The formula editor contained a large number of displayed key fields andlist boxes representing different elements of mathematical formulae likebrackets, integrals, fraction bars, matrices, so forth. For insertingspecial characters, like for example the Greek character Σ, it wasnecessary to enter a list box containing the special characters.

The user created the desired formula 101 using these keys and listboxes. After having completed the formula, the user returned to theoriginal document and pasted the formula as an imported object into thedocument. If the user recognized an error in the formula, the user againopened the formula editor, corrected the error, and returned to theoriginal document.

Using a formula editor, it was possible to create nearly every desiredmathematical formula; however, the operation was complicated and timeconsuming in particular for simple formulae like simple fractions orsquare roots, which appeared frequently in a text document. Editing ofthe formula always required entering the formula editor and subsequentlyreturning into the original document.

To simplify the entry of formulas, some formula editors permitted theuse of script like phrases that the formula editor converted to thecorresponding mathematical expression. However, while this assisted inentering a formula in some situations by minimizing the use of keyfields and list boxes, the general problem of having to utilize theformula editor persisted.

In an attempt to minimize some of the entry and exit issues, it wasknown to select an insert option from a menu bar of an application andthe formula editor capability was opened so that the user could insertand edit a formula without leaving the application, only the menus andthe object bars were changed. After the formula editor capability wasused to enter the data object, double clicking on the embedded objectlaunched the formula editor capability so that the formula could beedited. Again, this was done without leaving the application.

SUMMARY OF THE INVENTION

According to the principles of this invention, inserting or editing adata object like a mathematical formula or special character in acomputer-generated document is facilitated and sped up in comparison tothe prior art methods that required use of a formula editor. A method ofinserting a data object into a computer-generated document includesinputting instruction symbols representing the data object into thedocument in the form of text characters, selecting the document portioncontaining instruction symbols, and converting the instruction symbolscontained in the selected document portion into a data objectrepresented by the instruction symbols.

With the present invention it is possible to input the data object,which may be a mathematical formula or a Greek, Chinese, Korean,Cyrillic, Arabic, Hebrew, or Japanese character, or any other characteror symbol, and which can be represented by certain instruction symbols,into the document using standard characters, which are also used forcreating a text document. The user does not need to leave the documentand can input the instruction symbols in the same way as the textcharacters, for example by typing on a keyboard.

If the selected document portion contains characters, which are not partof an instruction these characters remain unchanged during theconverting operation. Those unchanged characters may be variables likea, b, or x in a mathematical formula.

In one embodiment, the converted data object is inserted into thedocument at the position of the selected document portion. The inserteddata object is formatted depending on a surrounding content, forexample, the same as the format of text in the same line. The inserteddata object is automatically stored with the document in thisembodiment. The inserted data object is reconvertible into the originaldocument portion for editing purposes.

The document portion including the instruction symbols may be input bymeans of speech decoding. In this case, the present invention isparticularly advantageous since the instruction symbols (in contrast tothe mathematical symbol itself) may be expressed orally.

One embodiment of the invention allows fast and easy generation andediting of a data object like a mathematical formula or specialcharacters. This is particularly useful for simple and short dataobjects and for data objects, which the user needs frequently and forwhich the user easily memorizes the instruction symbols representingthese data objects. For inserting the object, the user needs not toenter a special tool like a formula editor and then return to theoriginal document. Another advantage of the present invention is that itallows the input of the data objects by speech decoding since theinstruction symbols can be expressed orally.

Another embodiment of the invention provides a computer program forinserting, on a computer, a data object into a document, comprisinginserting instruction symbols representing the data object in the formof text characters into the document, selecting a document portioncontaining instruction symbols, and converting the instruction symbolscontained in the selected document portion into the data objectrepresented by the instruction symbols.

Program code may be embodied in any form of a computer program product.A computer program product comprises a medium configured to store ortransport computer readable code, or in which computer readable code maybe embedded. Some example of computer program products are CD-ROM discs,ROM cards, floppy discs, magnetic tapes, computer hard drives, serverson a network and signals transmitted over a network representingcomputer readable program code.

According to a still further embodiment, the present invention providesa software tool providing instructions for inserting a data object intoa computer-generated document by inserting instruction symbols inputtedin the form of text characters and representing the data object into thedocument, converting instruction symbols contained in a selecteddocument portion into the data object represented by the instructionsymbols, inserting the converted data object into the document, andproviding signals for displaying the document including the converteddata object.

According to another embodiment, the present invention provides acomputer-generated document including a data object generated by aconversion of instruction symbols inputted in the form of textcharacters, wherein the data object is reconvertible into theinstruction symbols.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of a prior art document containinga mathematical formula.

FIG. 2A is an example of a text document containing instruction symbolsrepresenting a data object according to the present invention.

FIG. 2B is a schematic representation of the text document shown in FIG.2A after conversion of a data object.

FIG. 2C is a process flow diagram for the method of the presentinvention.

FIG. 3A is a schematic illustration of a computer system to which thepresent invention may be applied.

FIG. 3B is a schematic illustration of a client-server computer systemin which the present invention may be transferred and/or downloaded.

DETAILED DESCRIPTION

According to the principles of this invention, a user enters a formulain a computer-generated document by simply typing in text representingthe formula and selecting this text. In response to the selection of thetext representing the formula, the text representing the formula isautomatically converted to a mathematical formula and inserted in thecomputer-generated document as a data object.

Consequently, with this invention, a user generating a document on acomputer no longer has to continually open a formula editor to enter aformula. Rather, the user simply continues to input text information inthe same form as the rest of the document including text that describesthe formula. Similarly, a user can type in text representing a specialcharacter, e.g., a Greek, Chinese, Korean, Cyrillic, Arabic, Hebrew, orJapanese character, or any other character or symbol, and use the methodof this invention to automatically convert the text representing thespecial character to a data object that is inserted in thecomputer-generated document.

According to the principles of this invention, in a text-based formulageneration method 205, a user inputs text in an input text operation 221(FIG. 2C) into a computer-generated document 200A (FIG. 2A), which isdisplayed on a display screen 210 by an application 319 (FIG. 3A)executing on a computer processor 312C. In operation 221, (FIG. 2C) theuser inputs the text using, for example, a keyboard in input units 320C(FIG. 3A) of a computer system 300C, which is representative of acomputer system input device. The text, however, can be input usinganother suitable input technique and/or input device, e.g. voicerecognition processing or the like.

Input text operation 221 transfers to formula check operation 222. Ifthe user does not want to input a formula, formula check operation 222returns to input text operation 221. Conversely, if the user wants toinput a formula into document 200A, formula check operation 222, whichis carried out by the user, transfers to input instruction operation223.

In input instruction operation 223, the user inputs the formula usingtext instruction symbols via one of input units 320C. For example, asillustrated in FIG. 2A, the user inputs the text portion “x equal sqrt aover b”, which includes the text instruction symbols, equal, sqrt, andover. The user is not required to change modes of input, and is notrequired to access a formula editor and type the formula into theeditor, but rather the user simply continues inputting characters in aconventional fashion.

After completing the text input for the desired formula in inputinstruction operation 223, the user selects the text formula instructionin select instruction 224. In this embodiment, the user first highlightstext formula instruction 212 and then moves cursor 211 to an equationicon 213. With cursor 211 on equation icon 213 and with text formulainstruction 212 highlighted, the user clicks a mouse button to completeselect instruction operation 224. In more general terms, selectinstruction operation 224 identifies a text formula instruction 212 fora generate formula method 230. Operations 221 to 224 form a text formulainstruction generation and identification method 220.

In generate formula method 230, formula check operation 231 determineswhether the user selected a text formula instruction. In thisembodiment, check operation 231 determines whether the user clicked onequation icon 213. If the user selected a text formula instruction,check operation 231 transfers to convert instruction operation 233 andotherwise to continue operation 232. In one embodiment, check operation231 is part of an event handler of application 319, and if the event isnot a text formula instruction selection input, event handling continuesin continue operation 232 and the application continues as in the priorart.

However, if a text formula instruction selection input event occurred,processing transfers to convert instruction operation 233. Convertinstruction operation 233 cuts the selected text formula instruction andpastes the selected text formula instruction into a call to a formulaeditor that can process the text formula instruction. For example, aprior art formula editor is modified to receive a text formulainstruction and output a data object that is a corresponding formula.The modified formula editor executes in the background and the user isunaware of its existence. Upon the modified formula editor returning adata object, which in this example is a mathematical formula${x = {\sqrt{\frac{a}{b}} \cdot}},$combinations of characters in the text formula instruction, which do notrepresent text instruction symbols, like the variables x, a and b inthis example, remain unchanged. Hence, the creation of a formulacontaining variables is possible. Upon return of the mathematicalformula, i.e., the data object, processing transfers from convertinstruction operation 233 to insert formula operation 234.

In insert formula operation 234, the data object, i.e., formula 214, isinserted in document 200B at the location from which the text formulainstruction sequence was cut, and is displayed on display unit 210.Preferably, the formula is formatted like the surrounding text so thatthe visual appearance of text document 200B containing the formula isoptimized. However, in one embodiment, the user can include textinstructions to format any part, or all of the formula in a specificformat, which may be different from the format of the surrounding text.

Following insert formula operation 234, document complete checkoperation 235 determines whether the user has entered an instruction toindicate the document is complete. If a document complete instructionhas been issued, the finished document is saved. Preferably, theinserted data object is stored together with the text document in amemory, e.g., memory 311B, which is this case is located in a fileserver 300B. If the document is not complete, check operation 235returns to input text operation 221.

Those of skill in the art will appreciate that the method of thisinvention can be multithreaded. For example, one thread permits the userto continue entering additional text, while another thread executes thetext formula instruction. Also, as illustrated in FIGS. 2A and 2B, thecontent of a text document 200A, may include in addition to the textdata also other data like diagrams, graphics or tables. The textdocument also may be, for example, an HTML- or XML-document. Inaddition, the present invention is not restricted to text documents.

Hence, according to the principles of this invention, if a user wishesto input a special data object like a formula into the text document,the user enters the formula in the form of a text formula instructionthat includes text instruction symbols and variables. For example, theformula $\frac{a}{b}$is represented by “a over b”. Here, the characters “a” and “b” representvariables and “over” is a text instruction symbol representing afraction bar. Other examples of text formula instructions are “sqrt a”for √{square root over (a)}, “3 ind 1” for 3₁ and “int (a,b) Omega dt”for ∫_(a)^(b)Ω𝕕t.From the last example, it is obvious that the present invention is alsovery useful for inserting special characters like Greek characters intoa text document. “pi” may represent the Greek character π, “alpha” mayrepresent α or “lambda” may represent λ. It is also possible todistinguish between small and capital letters, “Lambda” may for examplerepresent Λ. It is immediately apparent that typing the instructionsymbols is in many cases much easier and faster than using a specialprogram like a formula editor or a list box for Greek symbols. The samecan apply to other special characters like Chinese, Korean, Cyrillic,Arabic, Hebrew, or Japanese characters, or any other character or symbolcharacters. In another embodiment, a character, e.g., a percent sign, isused before the name of the character to assist in distinguishingbetween when the user wants the text word, and when the user wants theGreek or other symbol.

Table 1 lists a number of different formula symbols that can begenerated in using a text formula instruction. Notice that in eachinstance, the text formula instruction utilizes only characters that arefound on a conventional computer keyboard. The last column in a row ofTable 1 gives a simple example of a text instruction for a formula thatutilizes the symbol presented in the first column of the row. In thelast column, a, b, x, y, and z are used as variables. The textinstruction symbol is in a bold font.

TABLE 1 Symbol Presented Example of in text formula Formula TypeDescription instruction + Unary Plus Sign +a operator − Unary Minus Sign−a operator ± Unary Plus Minus Sign plusminus a operator ∓ Unary MinusPlus Sign minusplus a operator

Unary Logical neg a operator negation |

| Unary Absolute value abs a operator/ function ! Unary Factorial fact aoperator/ function √ Unary Square root sqrt a operator/ function ^(n)√Unary n-th root nroot n a -- operator/ where n is the function desirednth root of a Unary User-defined uoper % theta x operator operator =Binary Equal a = b operator/ relation ≠ Binary Not equal a neq b, oroperator/ a <> b relation + Binary Addition a + b operator ⊕ Binary Addsymbol in a oplus b operator circle − Binary Substraction a − b operator⊖ Binary Subtract symbol a ominus b operator in circle * Binary Multiplya * b operator • Binary Dot product a cdot b operator ⊙ Binary Dotproduct in a odot b operator a circle × Binary Multiplication a times boperator

Binary Multiply symbol a otimes b operator in circle / Binary Division a/ b operator / Binary Slash for a slash b operator quotient set slash cbetween two characters

/

Binary Slash between a wideslash b operator two characters, of which theleft character is superscript, and the right is subsript

\

Binary Back Slash a widebslash b operator between two characters, ofwhich the right character is superscript, and the left subscript

Binary Slash in circle a odivide b operator ÷ Binary Division a div boperator a Binary Division/ a over b b operator Fraction

Binary Logical AND a and b, or operator a & b

Binary Logical Or a or b, or operator a | b ∘ Binary Concatenate a circb operator | Binary Divides 5 divides 30 operator

Binary Does not Divide 7 ndivides 30 operator > Binary Greater than a gtb, or operator/ a > b Relation < Binary Less than a le b, or operator/ a< b Relation ≧ Binary Greater than or a gt b, or operator/ equal to a >=b Relation

Binary Greater than- a gtslant b operator/ equal to Relation

Binary Much greater a gg b, or operator/ than a >> b Relation ≦ BinaryLess than or a le b, or operator/ equal to a <= b Relation

Binary Less than-equal a leslant b operator/ to Relation

Binary Much less than a 11 b, or operator/ a << b Relation

Binary Is defined as/ a def b operator/ by definition Relation equal to≡ Binary Is equivalent/ a equiv b operator/ congruent to Relation ≈Binary Is a approx b operator/ approximately Relation ˜ Binary Issimilar to a sim b operator/ Relation ≅ Binary Is similar or a simeq boperator/ equal to Relation ∝ Binary Is proportional a prop b operator/to Relation ⊥ Binary Is orthogonal a ortho b operator/ to Relation ∥Binary Is parallel to a parallel b operator/ Relation

Binary Correspondence a transl b operator/ symbol image of Relation

Binary Correspondence a transr b operator/ symbol original Relation of ∈Binary Is contained in a in b operator/ Set operator ∉ Binary Is not anotin b operator/ contained in Set operator ⊂ Binary Subset a subset boperator/ Set operator

Binary Subset or equal a subseteq b operator/ to Set operator

Binary Not subset to a nsubset b operator/ Set operator

Binary Not subset or a nsubseteq b operator/ equal to Set operator ⊃Binary Superset a supset b operator/ Set operator

Binary Superset or a supseteq b operator/ equal to Set operator

Binary Not superset to a nsupset b operator/ Set operator

Binary Not superset or a nsupseteq b operator/ equal to Set operator

Binary Contains a owns b, or operator/ a ni b Set operator ∪ BinaryUnion of Sets a union b operator/ Set operator ∩ Binary Intersection ofa intersection operator/ Sets b Set operator \ Binary Difference asetminus b, operator/ between Sets or Set operator a bslash b X_(n)Binary x with index n x sub n operator X^(n) Binary n-th power of x xsup n operator → Binary Toward a toward b operator/ Relation Binary Userdefined x boper % theta opeator binary operator y --used to insert greekcharacter theta Σ Operator Sum Sum x sub i Π Operator Product prod x subi

Operator Coproduct coprod x sub I lim Operator Limit lim x towardinfinity lim inf Operator Limit inferior liminf lim sup Operator Limitsuperior limsup

Operator/ Physics hbar Physics Constant

Operator/ Physics lambdabar Physics Constant ∃ Operator/ Existential aexists b Logic quantifier, there is at least one ∀ Operator/ Universal aforall b Logic quantifier, for all

Operator/ Arrow with a drarrow b Logic double line to the left

Operator/ Arrow with a drarrow b Logic double line to the right

Operator Arrow with a dlrarrow b Logic double line to the left and tothe right ↑ Operator Up arrow a uparrow b ↓ Operator Down arrow adownarrow b ← Operator Left arrow a leftarrow b → Operator Right arrow arightarrow b ∫ Operator Integral in xdx ∫∫ Operator Double Integral iintf (x,y) dxdy ∫∫∫ Operator Triple Integral iiint f (x,y,z) dxdydz

Operator Curve integral lint

Operator Double curve llint integral

Operator Triple curve lllint integral Operator User defined oper % unionoperator from {i = 1} to n x_{i} Operator Range from . . . from {i = 1}to to n Operator Lower limit of from {i = 1} an operator Operator Upperlimit of to n an operator sin() Function Sine sin x cos() FunctionCosine cos x tan() Function Tangent tan x cot() Function Cotangent cot xarcsin() Function Arcsine arcsin x arccos() Function Arccosine arccos xarctan() Function Arctangent arctan x arccot() Function Arccotangentarccot x sinh() Function Hyperbolic sine sinh x cosh() FunctionHyperbolic cosh x cosine tanh() Function Hyperbolic tanh x tanget coth()Function Hyperbolic coth x cotangent arsinh() Function Area hyperbolicarsinh x sine arcosh() Function Area hyperbolic arcosh x cosine artanh()Function Area hyperbolic artanh x tanget arcoth() Function Areahyperbolic arcoth x cotangent exp() Function General exp x exponentialfunction ln Function Natural ln x logarithm log Function Logarithm log xbase 10 e^(□) Function Natural func ^{x} exponential function INMathematical Natural number setn a symbol

Mathematical Integer setz a symbol

Mathematical Rational number setq a symbol

Mathematical Real number setr a symbol

Mathematical Complex number setc a symbol

Mathematical Cardinal number aleph a symbol

Mathematical back epsilon backepsilon symbol Ø Mathematical Empty setemptyset symbol

Mathematical Real part of a re a symbol complex number

Mathematical Imaginary part im a symbol of a complex number ∞Mathematical Infinity infinity, symbol or infty ∇ Mathematical Nablavector nabla x symbol ∂ Mathematical Partial partial x symboldifferentiation or set margin

Mathematical p function wp symbol ... Other symbol Three dots dotsaxisvertically in the symbol center

Other symbol Three dots dotsup, diagonally from or lower left todotsdiag upper right

Other symbol Three dots dotsdown diagonally from upper right to lowerleft ... Other symbol Three dots dotslow horizontally below

Other symbol Three dots dotsvert vertical □ Other symbol Placeholder <?>() Bracket with Normal round (a over b) grouping left and right oplus cfunction brackets [] Bracket with Normal left and [a over b] groupingright square oplus c function brackets

Bracket with Left and right icibracket . . . grouping double squarerdbracket function brackets {} Bracket with Left and right ibrace . . .grouping curly brackets, rbrace function set bracket ︷ Bracket withScalable curly . . . grouping set bracket on overbrace function top . .. ︸ Bracket with Scalable curly . . . grouping set bracket underbracefunction below . . . <> Bracket with Left and right langle . . .grouping pointed rangle function brackets <|> Bracket with Left andright langle . . . grouping pointed mline . . . function operator ranglebrackets <|> Bracket with Scalable left left langle grouping and right .. . mline function pointed . . . right operator rangle brackets | |Bracket with Left and right lline . . . grouping vertical lines rlinefunction ∥ ∥ Bracket with Left and right ldline . . . grouping doublelines rdline function └ ┘ Bracket with Left and right lfloor . . .grouping lines with rfloor function lower edges ┌ ┐ Bracket with Leftand right lceil . . . grouping lines with rceil function upper edgesBracket with Automatic grouping sizing of function brackets by puttingleft and right (left . . . right . . . ) up front, e.g., left(a over bright) or left lceil . . . right lceil. This way round, square, doublesquare, single, double, single, curley, pointed, and operator bracketscan be changed. ( Bracket, round left \( also bracket widowed, withoutgrouping function ) Bracket, Normal round \) also right bracket widowed,without grouping function [ Bracket, Normal left \[ also square bracketwidowed, without grouping function ] Bracket, Normal right \] alsosquare bracket widowed, without grouping function { Bracket, Left curly\lbrace, also bracket or, widowed, \{ without grouping function }Bracket, Right curly \lbrace, also bracket or, widowed, \} withoutgrouping function < Bracket, Left pointed \langle also bracket widowed,without grouping function > Bracket, Right pointed \rangle also bracketswidowed, without grouping function |... Bracket, Left vertical \llinealso line widowed, without grouping function ...| Bracket, Rightvertical \rline also line widowed, without grouping function ∥...Bracket, Left double \ldline also line widowed, without groupingfunction ...∥ Bracket, Right double \rdline also lines widowed, withoutgrouping function └ Bracket, Left line with \lfloor also lower edgewidowed, without grouping function ┘ Bracket, Right line with \rflooralso lower edge widowed, without grouping function ┌ Bracket, Left linewith \lceil also upper edge widowed, without grouping function ┐Bracket, Right line with \rceil also upper edge widowed, withoutgrouping function □_(□) Indexes and Right index _, or exponents (su sub,or b-and rsub superscript) □^(□) Indexes and Right exponent ^, orexponents (su sup, or b-and rsup superscript) _(□)□ Indexes and Leftindex lsub exponents(su b-and superscript) ^(□)□ Indexes and Leftexponent lsup exponents (su b-and superscript)   Indexes and Exponentcsup exponents(su directly above b-and a character superscript)  Indexes and Index directly csub exponents (su below a b-and charactersuperscript) Formatting Horizontal alignl, or alignment -- alignc, orleft, center, alignr right Formatting Space/Blank ˜ Formatting Smallspace/   small blank Formatting Newline newline □ Formatting Binom binom□ □ Formatting Stack stack{x#y#z} □ □ □□ Formatting Matrixmatrix{a#b##c#d} □□ ’ Attribute Accent to the acute a with fixed rightabove a character character width — Attribute Horizontal bar bar a withfixed above a character character width

Attribute Upside down breve a with fixed roof above a charactercharacter width

Attribute Upside down check with fixed roof character width ° AttributeCircle above a circle a with fixed character character width . AttributeDot above a dot a with fixed character character width .. Attribute Twodots above ddot a with fixed a character character width ... AttributeThree dots dddot a with fixed above a character character width ‘Attribute Accent to the grave a with fixed left above a charactercharacter width

Attribute Roof above a hat a with fixed character character width ˜Attribute Tilde above a tilde a with fixed character character width →Attribute Vector arrow vec a with fixed above a character characterwidth

Attribute Horizontal bar underline a with below a variable charactercharacter width

Attribute Horizontal bar overline a with above a variable charactercharacter width

Attribute Horizontal bar overstrike a with through a variable charactercharacter width → Attribute Wide vector widevec a with arrow, adjustsvariable to the character character size width ˜ Attribute Wide tilde,widetilde with adjusts to the variable character size character width

Attribute Wide roof, widehat with adjusts to the variable character sizecharacter width Font Italics ital attributes Font Remove italics nitalicattributes Font Bold bold attributes Font Remove bold nbold attributesFont Phantom phantom attributes character Font Command to font sans aattributes change characters; first the font name (sans, serif, orattributes fixed) is entered, then the characters to be changed areentered. Font Command to size *2 font attributes change the font sans asize; first the size is entered, then the characters to be changed areentered; for the entered sizes arguments following the pattern n, +n, −n*n or /n can be indicated; size +n and −n are changed in points(pt); apercentage change to e.g. 17% must be entered as *1.17 Font The commandto color green attributes change the abc character color; first colorgreen the color name (blank, white, cyna, magenta, red, blue, green andyellow) is entered, then the characters to be changed are entered.

In addition to easy generation of a formula, the present inventionincludes an easy way to edit a data object like a mathematical formula.The object is entered by, e.g., a mouse click, on the object, and thenis reconverted into the text formula instruction containing the textinstruction symbols. The user edits the object by editing the textformula instruction, selects the edited text formula instruction again,and converts the same again into a data object, as described above. Theediting operation can thus be carried out easily without entering aspecial tool like a formula editor.

Further, those of skill in the art will appreciate that while memory311C is illustrated as one unit that can include both volatile memoryand non-volatile memory, in most computer systems, memory 311C isimplemented as a plurality of memory units. In more general terms,method 205 is stored in a computer readable medium, and when method 205is loaded from the computer readable medium into a memory of a device,the device is configured to be a special purpose machine that executesmethod 205. Alternatively, the application used to execute method 220,e.g., application 319, may be stored in one computer readable medium,and method 230 stored in another computer readable medium.

Also, herein, a computer program product comprises a medium configuredto store or transport computer readable code for method 205, method 220,and/or method 230 or in which computer readable code for method 205,method 220, and/or method 230 is stored. Some examples of computerprogram products are CD-ROM discs, ROM cards, floppy discs, magnetictapes, computer hard drives, servers on a network and signalstransmitted over a network representing computer readable program code.

As illustrated in FIG. 3A, this storage medium may belong to computersystem 300C itself. However, the storage medium also may be removed fromcomputer system 300C. For example, method 205 may be stored in eithermemory 311A or 311B that is physically located in a location differentfrom processor 312C. The only requirement is that processor 312C iscoupled to memory. This could be accomplished in a client-server system,e.g. system 300C is the client and system 300B is the server, oralternatively via a connection to another computer via modems and analoglines, or digital interfaces and a digital carrier line.

For example, memory 311C could be in a World Wide Web portal, while thedisplay unit and processor are in a personal digital assistant (PDA), ora wireless telephone, for example, system 300A. Conversely, the displayunit and at least one of the input devices could be in a clientcomputer, a wireless telephone, or a PDA, while the memory and processorare part of a server computer on a wide area network, a local areanetwork, or the Internet. In this paragraph, method 205 that includesthe application used to perform method 220, as well as method 230 wasconsidered. However, those of skill in the art will appreciate that asimilar description can be made for only method 220 and for only method230. Accordingly, this description and that which follows is notrepeated for each of the possible combinations and permutations forusing and storing methods 220 and 230.

More specifically, computer system 300C, in one embodiment, can be aportable computer, a workstation, a two-way pager, a cellular telephone,a digital wireless telephone, a personal digital assistant, a servercomputer, an Internet appliance, or any other device that includes thecomponents shown and that can execute method 205. Similarly, in anotherembodiment, computer system 300C can be comprised of multiple differentcomputers, wireless devices, cellular telephones, digital telephones,two-way pagers, or personal digital assistants, server computers, or anydesired combination of these devices that are interconnected to perform,method 205 as described herein. See, for example, FIG. 3A.

Accordingly, a computer memory refers to a volatile memory, anon-volatile memory, or a combination of the two in any one of thesedevices. Similarly, a computer input unit and a display unit refers tothe features providing the required functionality to input theinformation described herein, and to display the information describedherein, respectively, in any one of the aforementioned or equivalentdevices.

In view of this disclosure, method 230 and method 220 can be implementedin a wide variety of computer system configurations. In addition, method205 could be stored as different modules in memories of differentdevices. For example, method 205 could initially be stored in a servercomputer, and then as necessary, a module of method 205 could betransferred to a client device and executed on the client device.Consequently, part of method 205 would be executed on the serverprocessor, and another part of method 205 would be executed on theclient device. In view of this disclosure, those of skill in the art canimplement the invention of a wide-variety of physical hardwareconfigurations using an operating system and computer programminglanguage of interest to the user.

In yet another embodiment illustrated in FIG. 3B, method 205 is storedin memory 311B of system 300B. Stored method 205 is transferred, overnetwork 315 to memory 311C in system 300C. In this embodiment, networkinterfaces 330B and 330C can be analog modems, digital modems, or anetwork interface card. If modems are used, network 315 includes acommunications network, and method 205 is downloaded via thecommunications network.

While the invention has been particularly shown with reference to apreferred embodiment thereof, it will be understood by those skilled inthe art that various other changes in the form and details may be madetherein without departing from the spirit and scope of the invention.

1. A method of a user interactively inserting a formula into acomputer-generated document without using an equation editor by saiduser comprising: receiving text interactively entered, by said user,into said computer-generated document; receiving an interactivelyselected portion of said text that was highlighted by said user, saiduser selected text portion including at least one text instructionsymbol and at least one text character, which is not included in saidtext instruction symbol, wherein said user selected text portionrepresents a formula; converting said user-selected text into a dataobject representing said formula, wherein said data object comprisessaid formula and further wherein said at least one text character whichis not included in said text instruction symbol remains unchanged duringthe converting; and returning said data object insertion into saidcomputer-generated document.
 2. The method of claim 1 wherein theformula comprises a mathematical formula.
 3. The method of claim 1wherein the data object comprises at least one Greek character.
 4. Themethod of claim 1 further comprising: inserting the returned data objectinto the computer-generated document at a position of the user selectedtext portion.
 5. The method of claim 4 wherein content surrounding thedata object has a format, and said method further comprises formattingthe returned data object using said format.
 6. The method of claim 1further comprising storing the data object with the computer-generateddocument.
 7. The method of claim 1 wherein the data object isreconvertible into the text portion representing the data object.
 8. Themethod of claim 1 wherein said method is downloaded.
 9. The method ofclaim 1 wherein said method is stored on a first computer system andsaid computer-generated document is stored on a second computer system.10. A computer program product embodied on a computer-readable mediumfor inserting a data object into a computer-generated document, thecomputer program product comprising program code for a method of a userinteractively inserting a formula into a computer-generated documentwithout using an equation editor by said user, said method comprising:receiving text interactively entered, by said user, into saidcomputer-generated document; receiving an interactively selected portionof said text that was highlighted by said user, said user-selected textportion including at least one text instruction symbol and at least onetext character, which is not included in said text instruction symbol,wherein said user selected text portion represents a formula; convertingsaid user-selected text into a data object representing said formula,wherein said data object comprises said formula and further wherein saidat least one text character which is not included in said textinstruction symbol remains unchanged during the converting; andreturning said data object insertion into said computer-generateddocument.
 11. The computer program product of claim 10 wherein theformula comprises a mathematical formula.
 12. The computer programproduct of claim 10 wherein the data object comprises at least one Greekcharacter.
 13. The computer program product of claim 10 furthercomprising computer code for: inserting the returned data object intothe computer-generated document at a position of the user selected textportion.
 14. The computer program product of claim 13 wherein contentsurrounding the data object has a format, and said computer programproduct further comprises formatting the returned data object using saidformat.
 15. The computer program product of claim 10 further comprisingstoring the data object with the computer-generated document.
 16. Thecomputer program product of claim 10 wherein the data object isreconvertible into the text portion representing the data object.
 17. Acomputer system comprising: a processor; and a memory, coupled to saidprocessor, storing instructions for a method of a user interactivelyinserting a formula into a computer-generated document without using anequation editor by said user, where upon execution of said instructionson said processor, said method comprises: receiving text interactivelyentered, by said user, into said computer-generated document; receivingan interactively selected portion of said text that was highlighted bysaid user, said user selected text portion including at least one textinstruction symbol and at least one text character, which is notincluded in said text instruction symbol, wherein said user selectedtext portion represents a formula; converting said user-selected textinto a data object representing said formula, wherein said data objectcomprises said formula and further wherein said at least one textcharacter which is not included in said text instruction symbol remainsunchanged during the converting; and returning said data objectinsertion into said computer-generated document.
 18. The computer systemof claim 17 wherein said memory is coupled to said processor by anetwork.